package com.hz.web.controller;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.hz.web.entity.EnterpriseEntity;
import com.hz.web.service.IenterpriseService;

/**
 * 黑名单控制层
 * @author Administrator
 *
 */
@Controller
@RequestMapping("enterprise")
public class EnterpriseController {

	@Resource
	private IenterpriseService enterpriseService;
	
	/**
	 * 查询企业单位红黑名单信息
	 * @param sysId   主键
	 * @param enterpriseName 单位名称
	 * @param projectName 项目名称
	 * @param organizationCode 组织机构代码
	 * @param reason 列入红黑名单原由
	 * @param addDate 列入红黑名单日期
	 * @param validity 有效期
	 * @param type 1 红名单  2黑名单
	 * @param isDel 1显示  2删除
	 * @param isOrder isOrder =='y' 按列入红黑名单日期降序排序
	 * @param page 分页  当前页
	 * @param rows 显示的条数
	 * @param dateStart 列入红名单开始日期（查询条件）
	 * @param dateEnd 列入红名单结束日期（查询条件）
	 * @param isTotal 是否查询总条数   no是不查询  null或者其它值都是查询
	 * @return JSONObject 查询企业单位红黑名单信息处理后的结果
	 */
	@RequestMapping("queryEnterprise")
	@ResponseBody
	public JSONObject queryEnterprise(String sysId, String enterpriseName,
			String projectName, String organizationCode, String reason,
			String addDate, String validity, String type, String isDel,
			String isOrder, Integer page, Integer rows, String isTotal,
			String dateStart, String dateEnd) {
		
		//存储最后的返回数据
		JSONObject json = new JSONObject();
		//存放参数
		Map<String, Object> parms = new HashMap<String, Object>();
		parms.put("sysId", sysId);
		parms.put("enterpriseName", enterpriseName);
		parms.put("projectName", projectName);
		parms.put("organizationCode", organizationCode);
		parms.put("reason", reason);
		parms.put("addDate", addDate);
		parms.put("validity", validity);
		parms.put("type", type);
		parms.put("isDel", isDel);
		parms.put("isOrder", isOrder);
		parms.put("dateStart", dateStart);
		parms.put("dateEnd", dateEnd);
			
		if(page!=null && rows !=null ){
			int index = (page-1)*rows;
			int count = rows;
			parms.put("index", index);
			parms.put("count", count);
			if(isTotal==null || !"no".equals(isTotal)){
				//查询企业单位信息总条数
				int total  = enterpriseService.queryEnterpriseCount(parms);
				json.put("total",total);
			}
		}
		//查询企业单位红黑名单信息
		List<EnterpriseEntity> list =  enterpriseService.queryEnterprise(parms);
			if(list==null){
			list = new ArrayList<EnterpriseEntity>();
		}
		json.put("rows",list);
		return json;
	}
	
	/**
	 * 修改企业单位红黑名单信息 
	 * @param entity  红黑名单企业单位信息 实体类
	 * @return
	 */
	@RequestMapping("updateEnterprise")
	@ResponseBody
	public JSONObject updateEnterprise(EnterpriseEntity entity){
		//存储最后的处理结果
		JSONObject json = new JSONObject();
		int row = -1;
		try {
			row = enterpriseService.updateEnterprise(entity);
		} catch (Exception e) {
			e.printStackTrace();
		}
		json.put("row", row);
		return json;
	}
	
	/**
	 * 解析excle
	 * @param url  excle名称
	 * @param type 类型 1是红名单 2是黑名单
	 * @param request
	 * @return
	 * @throws ParseException
	 */
	@RequestMapping("fileLoadExcle")
	@ResponseBody
	public JSONObject fileLoadExcle(String url, String type,HttpServletRequest request)
			throws ParseException {
		JSONObject json = new JSONObject();
		//解析excle
		json = enterpriseService.fileLoadExcle(url, type, request);
		return json;
	}
	
}
